package jsonParser;

import android.text.TextUtils;
import android.util.Log;

import org.json.JSONObject;

import jsonParser.jsonData.ErrorData;

/**
 * 解析公共数据，所有的解析类需继承该类
 */

public abstract class BaseJsonParser extends ParserField {

    private static final String TAG = "BaseJsonParser";

    protected boolean mLoadComplete = true;

    private ErrorData mErrorData;

    private static final byte[] LOCK = new byte[0];

    public boolean getLoadComplete() {
        return mLoadComplete;
    }

    /**
     * 计算是否有加载更多
     *
     * @param jsonObject
     */
    public void computeLoadComplete(JSONObject jsonObject) {

        if (jsonObject != null) {

            int currentPage = JsonParserUtil.getInt(CURRENT_PAGE, jsonObject);
            int prePageCount = JsonParserUtil.getInt(PRE_PAGE_COUNT, jsonObject);
            int totalCount = JsonParserUtil.getInt(TOTAL_COUNT, jsonObject);
            mLoadComplete = (totalCount - (prePageCount * currentPage)) <= 0;
        }
    }

    public void parseError(JSONObject obj) {

        mErrorData = null;

        String errorCode = JsonParserUtil.getString(ERROR, obj);
        String errorMsg = JsonParserUtil.getString(ERROR_MSG, obj);

        if (!TextUtils.isEmpty(errorMsg)) {
            Log.e(TAG, "errorMsg " + errorMsg);
            mErrorData = new ErrorData(errorCode, errorMsg);
        }
    }

    public ErrorData getErrorData() {
        return mErrorData;
    }
}
